package com.ht.module.job.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ht.module.job.entity.JobInfo;
import com.ht.util.Pager;
import org.quartz.SchedulerException;

/**
 * <p>
 * 定时任务信息表，用于存储任务基本信息 服务类
 * </p>
 *
 * @author hejialun
 * @since 2025-08-11
 */
public interface JobInfoService extends IService<JobInfo> {

    /**
     * 分页查询
     * @param pager
     * @param en
     * @return
     */
    Pager<JobInfo>  findPage(Pager<JobInfo> pager, JobInfo en);

    /**
     * 添加或修改定时任务
     * @param en
     */
    void addOrUpdateJob(JobInfo en) throws SchedulerException;

    /**
     * 删除定时任务
     * @param id
     */
    void delById(String id);

    /**
     * 暂停定时任务
     * @param id
     */
    void pause(String id);

    /**
     * 运行定时任务
     * @param id
     */
    void run(String id);

    /**
     * 运行定时任务
     * @param jobInfo
     */
    void run(JobInfo jobInfo);

    /**
     * 定时任务执行一次
     * @param id
     */
    void runOnce(String id);
}
